package egg

import "math"

// Zone 表示一个区域，包含X、Y坐标和半径
type Zone struct {
	X, Y, Radius float64
}

// Nearby 判断当前区域是否与另一个区域接近
func (z *Zone) Nearby(other *Zone) bool {
	dist := z.Radius + other.Radius
	if math.Abs(z.X-other.X) < dist && math.Abs(z.Y-other.Y) < dist {
		return true
	}
	return false
}

// RoundX 返回X坐标的四舍五入整数
func (z *Zone) RoundX() int {
	return int(math.Round(z.X))
}

// RoundY 返回Y坐标的四舍五入整数
func (z *Zone) RoundY() int {
	return int(math.Round(z.Y))
}

// CopyXY 将一个区域的X和Y坐标复制到另一个区域
func CopyXY(from *Zone, to *Zone) {
	to.X = from.X
	to.Y = from.Y
}
